/*
 ============================================================================
 Page	     : 354-355
 Name        : copy3.c
 Date	     : 20210406
 Author      : Hbue 18060333
 Copyright   : Your copyright notice
 Description : 演示strncpy()
 ============================================================================
 */

#include <stdio.h>
#include <string.h>			// strncpy()的原型在该头文件中
#define SIZE 40
#define TARGSIZE 7
#define LIM 5
char *s_gets(char * st, int n);

int main(void)
{
	char qwords[LIM][SIZE];
	char temp[SIZE];

	int i = 0;
	printf("Enter %d words beginning with q:\n", LIM);
	while(i < LIM && s_gets(temp, SIZE))
	{
		if(temp[0] != 'q')
		{
			printf("%s doesn't begin with q!\n", temp);
		}
		else
		{
			strncpy(qwords[i], temp, TARGSIZE - 1);
			qwords[i][TARGSIZE - 1] = '\0';
			i++;
		}
	}
	puts("Here are the words accepted:");
	for(i = 0; i < LIM; i++)
	{
		puts(qwords[i]);
	}

	return 0;
}

char *s_gets(char * st, int n)
{
	char *ret_val = NULL;

	ret_val = fgets(st, n, stdin);
	if(ret_val)
	{
		int i = 0;
		while(st[i] != '\n' && st[i] != '\0')
		{
			i++;
		}
		if(st[i] == '\n')
		{
			st[i] = '\0';
		}
		else
		{
			while(getchar() != '\n')
			{
				continue;
			}
		}
	}

	return ret_val;
}

